home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
vis082s.arc
/
GENTYPES.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-17
|
12KB
|
409 lines
{$R-,S-,I-,D-,F+,V-,B-,N-,L+ }
unit gentypes; (* General Structures for ViSiON BBS *)
interface
uses dos;
const versionnum='0.82';
NetMailVer=1;
date='04-30-91';
lastrevision=905;
thisversioncode=1;
maxusers=30000;
maxmessagesize=100;
maxlastcallers=20;
maxtopics=10;
maxcats=10;
sectorsize=512;
numsectors=10000;
maxcatalogsize=50;
maxgroupsize=50;
maxsyslogdat=150;
maxsyslogsize=1000;
e_door=3;
e_controlbreak=9;
e_badconfig=4;
e_fatalfileerror=90;
e_files30=50;
e_nomodemdrv=2;
{ All of these are extended keystroke values. }
breakoutchar= 0; {Control-Break}
chatchar= 59; {F1}
sysopcomchar= 60; {F2}
sysnextchar= 65; {F7}
timelockchar= 66; {F8}
inlockchar= 67; {F9}
outlockchar= 68; {F10}
printerechochar= 114; {Ctrl-PrtSc}
availtogglechar= 30; {Alt-A}
bottomchar= 48; {Alt-B}
texttrapchar= 18; {Alt-E}
sysophelpchar= 35; {Alt-H}
notimechar= 37; {Alt-K}
lesstimechar= 38; {Alt-L}
moretimechar= 50; {Alt-M}
tempsysopchar= 20; {Alt-T}
viewstatchar= 47; {Alt-S}
quicknukechar= 49; {Alt-N}
type anystr=string[255];
lstr=string[80];
mstr=string[35];
sstr=string[15];
accesstype=(bylevel,keepout,letin,invalid);
availtype=(available,bytime,notavailable);
configtype=(lowercase,eightycols,linefeeds,postprompts,moreprompts,
asciigraphics,ansigraphics,udsysop,bulletinsysop,votingsysop,
emailsysop,doorssysop,mainsysop,databasesysop,wanted,
showtime,vt52,fseditor);
groupclass=(publicgroup,privategroup,personalgroup);
voteset=array [1..maxtopics] of byte;
boardorder=array [0..255] of byte;
conferenceset=array[0..32] of byte;
newvote=array [1..30] of integer;
type userrec=record
handle, (* Users Handle *)
realname:mstr; (* Users Real Name *)
password:sstr; (* Users Password *)
phonenum:string[10]; (* Users Phone Number *)
laston:longint; (* Last Call date in DATEPACK form *)
numon, (* Total Calls *)
timetoday, (* Time left today *)
nup, (* G-File Uploads *)
ndn, (* G-File Downloads *)
nbu, (* Messages posted *)
uploads, (* Uploads *)
downloads:integer; (* Downloads *)
totaltime:real; (* Total Time spent on system by user *)
voted:voteset; (* What the user voted on *)
udlevel, (* File Level *)
udpoints, (* File Points *)
level, (* Main Access Level *)
emailannounce, (* Sector for Email Announcement "-1" if none *)
beepedpwd, (* Reserved *)
infoform, (* Location for Infoform #1 *)
glevel, (* G-File Level *)
gpoints:integer; (* G-File Points *)
regularcolor, (* The following are the users colors. *)
promptcolor,
statcolor,
inputcolor,
displaylen,
menuboard,
menuback,
blowboard,
blowinside:byte;
config:set of configtype; (* Various config stuff, i.e. Ansi, etc *)
newscanconfig, (* Various stuff dealing with message
bases. Do not mess with these. *)
access1,
access2:set of byte;
usernote, (* Account Note [Public] *)
macro1, (* Predefined user macros *)
macro2,
macro3:mstr;
upkay, (* Upload K *)
dnkay:longint; (* Download K *)
lastbaud, (* Last baud rate used *)
lastlevel, (* Last main access level *)
lastxfer, (* Last File Level *)
lastxferpts:integer; (* Last File Points *)
confset:conferenceset; (* Array [1..32] of byte for the
sub-conferences *)
hackattempts:integer; (* Password Hack Attempts *)
revision:integer; (* Last Revision Number *)
lastposts, (* Last total messages in system *)
lastfiles:word; (* Last total files in system *)
infoform2, (* Location of Infoforms 2-5 *)
infoform3,
infoform4,
infoform5:integer;
lastread:array [0..255] of word; (* Message Stuff *)
expdate:longint; (* Expiration date in DATEPACK form *)
timebank:integer; (* Time stored in Time Bank *)
lastcalno:word; (* Last Caller Number *)
udratio, (* Individual Upload/Download Ratio *)
udkratio, (* Individual U/D K Ratio *)
pcratio:integer; (* Individual Post/Call Ratio *)
avatar:byte; (* 0=Normal ansi, 1=Pull Down Windows,
2=Avatar (not implemented yet) *)
timelimits:integer; (* Daily time limit (0 means normal) *)
Conf:Array [1..5] of Boolean; (* Main Conference Flags *)
LastConf:Byte; (* Last Conference user was in *)
SpecialSysopNote:Mstr; (* Special Sysop Note *)
MenuHighlight,statusboxcolor:Byte;
LastGfiles:Word;
prompttype:integer;
NewVoteYes,NewVoteNo:integer;
newvoteit:newvote;
nuv1,nuv2,nuv3,nuv4,nuv5,nuv6,nuv7,nuv8,nuv9,nuv10:lstr;
use1,use2,use3,use4,use5,use6,use7,use8:BooLean; (* Config File Listings *)
YourPrompt:string[255]; (* User Defined Prompt *)
MsgHeader:integer; (* ANSi Header or Boxed ANSi Header *)
end;
registerrec = record
sysop:mstr;
boardname:lstr;
serial:sstr;
end;
userspecsrec=record
name:String[34];
Expired:Boolean;
minlevel,maxlevel,minlaston,maxlaston:integer;
minpcr,maxpcr:real
end;
boardrec=record
boardname:mstr;
sponsor:string[34];
echo:Byte;
level,autodel:integer;
shortname:sstr;
conference:byte
end;
Newsrec=Record
Location:Integer;
Level:Integer;
From:mstr;
When:longint;
Title:String[28];
MaxLevel:Integer;
End;
BulRec=record (* Message Header Record *)
leftby,leftto:String[30];
title,status:String[30];
when:longint;
where:lstr;
where2:lstr;
version:byte;
anon,recieved:boolean;
line,plevel:integer;
id:word;
cnet,fidonet,flag3,flag4,flag5,flag6,flag7,flag8:boolean;
realname:String[30];
end;
NodeNetRec=Record (* Node List Record *)
Pass:Mstr;
Name:Mstr;
Phone:string[12];
Baud:Word;
LastDate:Longint;
Celerity,Fido,Cnet,Flag4,Flag5,Flag6:Boolean;
Node:string[10];
BaseSelection:Array[1..255] of boolean;
end;
rumorrec=record
title,author,author2:mstr;
rumor:lstr;
when:longint;
level:integer;
end;
mailrec=record
title,sentby:mstr;
when:longint;
anon,read:boolean;
sentto,line,fileindex:integer
end;
abrec=record
title,fname:lstr;
level:integer;
when:longint
end;
catalogrec=record
nummail,additional:integer;
mail:array [1..maxcatalogsize] of mailrec
end;
grouprec=record
name:mstr;
class:groupclass;
creator,nummembers:integer;
members:array [1..maxgroupsize] of integer
end;
message=record
text:array [1..maxmessagesize] of lstr;
title:mstr;
sendto:mstr;
note:mstr;
anon:boolean;
numlines:integer
end;
NetPostRec=Record (* Net Mail Package Record *)
NetIdNum:Byte;
BulletinRec:BulRec;
MessageRec:Message;
End;
topicrec=record
topicname:lstr;
numvoted,addlevel:integer;
mandatory:boolean
end;
choicerec=record
choice:lstr;
numvoted:integer
end;
lastrec=record
name:mstr;
callnum:longint;
when:longint;
lastbps:integer
end;
buffer=array [1..sectorsize] of char;
baserec=record
numcats,numents,level:integer;
basename:mstr;
conference:byte;
echomail:boolean;
catnames:anystr
end;
entryrec=record
data:anystr;
when:longint;
addedby:integer
end;
parsedentry=array [1..maxcats] of anystr;
udrec=record
sentby:mstr;
when,whenrated:longint;
filename:sstr;
path:string[50];
points:integer;
filesize:longint;
descrip:lstr;
downloaded:integer;
sendto:mstr;
pass:sstr;
newfile,specialfile:boolean
end;
arearec=record
name,xmodemdir:lstr;
sponsor,pass:mstr;
conference:byte;
uploadhere,downloadhere:boolean;
level:integer
end;
windowrec=record
x1,y1,x2,y2,
cx,cy,color:byte
end;
fib=textrec;
bbsrec=record
name,leftby:mstr;
baud:string[4];
phone:string[12];
ware:sstr
end;
doorrec=record
name:mstr;
level,numused,info:integer;
batchname:lstr;
getparams:boolean;
end;
minuterec=record
started:boolean;
startedat:integer;
total:real
end;
logrec=record
menu,subcommand:integer;
param:string[41];
when:longint
end;
syslogdatrec=record
menu,subcommand:integer;
text:mstr
end;
gfilerec=record
gfiledescr:string[75];
sentby:string[30];
path:string[50];
fname:string[30];
filesize:longint;
when:longint;
downloaded:integer;
arcname:lstr;
specialfile,newfile:boolean;
end;
netnode=record
name,phone:mstr;
baud:word;
note:lstr;
end;
gfilearea=record
name:lstr;
gfiledir:string[49];
sponsor:string[30];
level:integer;
upable:boolean;
defarc:sstr;
end;
(* MenuType=Array[1..24] of Mstr;
LRMenuType=Array[1..4] of Mstr; Pull Down Windows Commented *)
Protorec=record
key:char;
desc:string[35];
cline:string[100];
exename:string[35];
end;
baudratetype=(b110,b300,b450,b600,b1200,b2400,b4800,b9600,b19200,b38400,b57600);
baudset=set of baudratetype;
const baudarray:array [b110..b57600] of word=
(110,300,450,600,1200,2400,4800,9600,19200,38400,57600);
versioncodes:array [1..thisversioncode] of string[4]=
('1.00');
const firstbaud=b110;
lastbaud=b57600;
var registo,registb:mstr;
matrix:anystr;
totalsent:longint;
totalrece:longint;
confilesa:word;
notvalidas,usedvmode:boolean;
crazychat:BooLeaN; (* Multiple Chat Colors *)
implementation
begin
end.